package com.laijiale.Service;

import com.github.pagehelper.PageInfo;
import com.laijiale.dto.*;
import com.laijiale.entities.Dept;
import com.laijiale.entities.Permission;
import com.laijiale.entities.Role;

import java.util.List;

/**
 * @author laijiale
 * @date 2024年07月28日 11:56
 */
public interface RoleService {
    /**
     *
     * @param roleInsertDTO
     * @return 改变表行数
     */
    int insert(RoleInsertDTO roleInsertDTO);

    /**
     *
     * @param id
     * @return
     */
    Role selectById(Long id);

    /**
     *
     * @param roleUpdateDTO
     * @return 改变表行数
     */
    int updateById(RoleUpdateDTO roleUpdateDTO);

    /**
     *
     * @param id 想要删除的主键
     * @return 改变行数
     */
    int logicDeleteById(Long id);

    /**
     *
     * @param ids 想要删除的主键1,2，3
     * @return 改变表行数
     */
    int logicDeleteByIds(List<Long> ids);

    /**
     *
     * @return 部门表
     */
    List<Role> list();

    PageInfo<Role> page(PageDTO pageDTO);
    List<Permission> getPermissions(Long id);

    int updatePermissions(RoleUpdatePermissionsDTO dto);

    PageInfo<Role> pageLikeTitle(RolePageDTO dto);

}
